class Solution {
    public:
        double myPow(double x, int n) 
        {
            if (n < 0)
                return 1 / pow(x, -(long long)n);
            return pow(x,n);
        }
    
        double pow(double x, long long n)
        {
            if(0 == n) return 1.0;
            double tmp = myPow(x, n / 2);
            return n % 2 == 0 ? tmp * tmp : tmp * tmp * x;
        }
    };